package com.xiaoming;

import java.util.Arrays;

public class 选择排序 {

    public static void main(String[] args) {
        int[] arr = new int[]{33, 23, 42, 11, 65, 22};
        System.out.println("排序前：" + Arrays.toString(arr));
        arrSort(arr);
        System.out.println("排序前：" + Arrays.toString(arr));
    }

    private static void arrSort(int[] arr) {
        int length = arr.length - 1;//获取数组长度
        for (int i = 0; i < length; i++) {  //外层循环  总共循环的次数
            int minIndex = i;//默认当前为最小（最大）值索引
            for (int j = i + 1; j < length + 1; j++) {  //内层循环    每一个都跟其他所有值进行比较  已经排过序的不进行重复排序（i + 1）  length + 1 需要多进行循环一次  要不然最后一个值无法进行排序
                if (arr[j] < arr[minIndex]) { //正序或者倒序
                    minIndex = j;//重新赋值最小（最大）索引值
                }
            }
            if (minIndex != i) {//如果索引值不一样  则需要交换
                int temp = arr[i];
                arr[i] = arr[minIndex];
                arr[minIndex] = temp;
            }
        }

    }
}
